﻿namespace Dyao.Book.Contract.Serialization
{
    /// <summary>
    /// 标记序列化bool或者bool?类型时添加描述字段
    /// </summary>
    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
    public class ShowBoolDescriptionAttribute : SerializeFormatterAttribute
    {
        /// <summary>
        /// 属性值为true的描述,默认值："是"
        /// </summary>
        public string TrueText { get; set; } = "是";

        /// <summary>
        /// 属性值为false的描述，默认是："否"
        /// </summary>
        public string FalseText { get; set; } = "否";

        /// <summary>
        /// 序列化描述名称格式化字符串，默认不设置。不设置时使用全局设置的格式化字符串。
        /// 格式例如：{0}_desc、isCompletedText（完全自定义的名称）
        /// </summary>
        public string NameFormat { get; set; } = null;

        public ShowBoolDescriptionAttribute()
        {
        }

        public ShowBoolDescriptionAttribute(string falseText, string trueText)
        {
            this.FalseText = falseText;
            this.TrueText = trueText;
        }
    }
}
